import { message } from 'ant-design-vue'

/**
 * 节流方法
 * @param callback
 * @param time
 * @returns {fun}
 */
export function throttle(callback, time) {
  let mark = true
  function fun(e){
    if(mark){
      setTimeout(() => {
        callback(e)
        mark = true
      }, time)
      mark = false
    }
  }
  return fun
}

/**
 * 验证手机号
 * @参数 {string} path
 * @返回值 {Boolean}
 */
export function validatePhone(str) {
  if(/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(str)){
    return true
  }
  message.error({
    content: '手机号码错误',
    duration: 2,
  })
  return false
}

/**
 * 从数组中随机取值，num为取出的个数，默认为1个。
 * @param arr
 * @param num
 * @returns {[]|*}
 */
export function randomChoice(arr, num = 1) {
  if(num === 1){
    const i = Math.floor(Math.random() * arr.length + 1) - 1
    return arr[i]
  } else {
    let res = []
    for( let i = 0; i < num ; i++ ){
      const i = Math.floor(Math.random() * arr.length + 1) - 1
      res.push(arr[i])
    }
    return res
  }
}

/**
 * 将毫秒转换为 分:秒
 * ms int 毫秒数
 */
export function msToTime(ms) {
  // 计算分钟
  // 算法：将秒数除以60，然后下舍入，既得到分钟数
  let h, s
  h = Math.floor(ms / 1000 / 60)
  s = Math.floor(ms / 1000 % 60)

  h += ''
  s += ''
  // 如果只有一位数，前面增加一个0
  h = ( h.length === 1) ? '0' + h : h
  s = ( s.length === 1 ) ? '0'+ s : s
  return h + ':' + s
}
